# #2， 解决部分字符串转为字典问题
# # 需要用到eval（）他可以将str当成有效的表达式求值并返回计算结果
# # 使用eval（）的目的是，把str转换成dict，（也可以转化为list，tuple）
# s1 = "len('hello')"
# print(s1)
# print(eval(s1))
# s2 = '{"name":"zhangsan","age":len("000000000")}'
# print(s2)
# print(eval(s2))
# print(type(eval(s2)))
# # 使用时候需要注意eval的参数必须传，且必须是str，传入空值none会报错
# # 逻辑需要处理
# # if isinstance("",str):
# #     hearders = eval(case["hearders"])
# # else:
# #     hearders = None
# # 简单写法 hearders = eval(case["hearders"]) if isinstance(case["hearders"],str) else None
# import logging
#
# logging.basicConfig(level=logging.DEBUG)
#
# logging.debug("这是一条调试信息")
# logging.info("这是一条普通信息")
# logging.warning("这是一条警告信息")
# logging.error("这是一条错误信息")
# logging.critical("这是一条严重错误信息")
from jinja2 import Template

a = 1 #模版简单的说就是包含占位变量的数据
s = "今天只吃{}颗糖".format(a)  #模板渲染就是用实际的值来填充占位变量
s2 = f"今天只吃{a}颗糖"
print(s)
print(s2)

data = {"name" : "张三","age" : "18"} #字典类型，很像全局变量all
# t = Template("my name is {{name}},my age is {{age}}") #参数是字符串类型，很像excel中保存的数据
# print(t.render(data))

# 一行代码
new_date = Template("my name is {{name}},my age is {{age}}").render(data)
print(new_date)

# 实际应用场景 由于case是字典，需要先转为字符串 str(case) ，渲染结果
# case = Template(测试用例数据，也就是case).render(全局变量all)
# case = Template(str(case)).render(全局变量all)
# 渲染结果是字符串类型，还需要eval（）转为case所需的字典
# case = eval(Template(str(case)).render(全局变量all))




























